<?php
/**
 * Lớp model NewsSetting
 * @author Mr.UBKey
 *
 */
#[Table('news_setting')]
#[PrimaryKey('id')]
class Areas_News_Models_NewsSetting extends XPHP_Model
{
    public $id;
    #[Label('Tên cấu hình')]
    #[Required(message = 'Tên cấu hình bắt buộc nhập')]
    #[MaxLength(255, message = 'Tên cấu hình có tối đa 255 kí tự')]
    public $name;
    #[Label('Từ khóa')]
    #[Required(message = 'Từ khóa bắt buộc nhập')]
    #[MaxLength(255, message = 'Từ khóa có tối đa 255 kí tự')]
    public $key;
    #[Label('Giá trị')]
    #[Required(message = 'Giá trị bắt buộc nhập')]
    public $value;
    /**
     * Thêm một cấu hình vào bảng
     */
    public function insert ()
    {
        $data = array();
        $data['name'] = $this->name;
        $data['key'] = $this->key;
        $data['value'] = $this->value;
        return $this->db->insert($data);
    }
    /**
     * Kiểm tra xem đã có key này trong bảng cấu hình chưa?
     * @param string $key
     */
    public function hasKey ($key)
    {
        $result = $this->db->where('key', $key)
            ->get()
            ->result();
        return count($result) > 0;
    }
    /**
     * Lấy ra setting
     * @param array $options
     */
    public function getSettings ($options = array())
    {
        foreach ($options as $field => $value) {
            $this->db->where($field, $value);
        }
        return $this->db->get()->result();
    }
    /**
     * Sửa cấu hình
     */
    public function update ()
    {
        $data = array();
        $data['name'] = $this->name;
        $data['value'] = $this->value;
        return $this->db->where('id', $this->id)->update($data);
    }
}